import libnum
import uuid
flag="flag{"+str(uuid.uuid4())+"}"
m=libnum.s2n(flag)
p = libnum.generate_prime(2048)
q = libnum.generate_prime(2048)
x = libnum.generate_prime(4096)
y = libnum.generate_prime(4096)

n = p * q
e = 0x10001
c = pow(m, e, n)

print("c=",c)
print(x * p - y * q)
print("x=",x)
print("y=",y)

# c = 819167649963114752409071690942828965596762225702125422224651455091514510699221689012200925546275830031560636434571675297352911785548562558995259185529739372065415320407815802186750343466069603564453133335339468465023669871194636196892019998935207213206263690388438074192184316296023645401077877114715985230518850300854162564541697624876005006316693763495665196932392860282743136069254457238426514217654211308356576587743413266816116398061386744037936492351734676350831535904555786373417782943462487966342446324586920268533217659394595673776791727030156809145044771214337720082482665839942679556775596805037563432378445332344070307192086425710019138340320155999228758718645401601922806183309005000232793295108264248107221425831137940764747440899967198929744597645010447079132413064685696595497031622178756728371427223009071172365660399862426808614310781649262366953422451061715753988547005171624561572800209843727720479076455447302266315465616082052292906817024385349625367335127791370192543189766366250792588949920001870810018187835769296432354197933863536721500934207233900135841304460719234606155627533870809427764337881255478336303687175976104216650172450886939797274047649899113069365776930432541285901134533586020261232876898556
# x * p - y * q = 1699980137266557324344914328325272464132636282755221827458872463192020874135524827987217608051368206672934330683211276768709877840468972596490803759885813728690444018491934963720438572841678828429913822054802155884199440293180952789752415462639050713771680511777055884579458058757377759627744674844108633533334457344901084171274088270351873241352667334795523258220147308594499138453672732641220818083962784902673365318410315424514270533343700860737463941309778962170226910616237946542757166553717492195935533892236503442774023121626490914033401612167978954941330133300881931925497717512695171706212382578903001110920592500175461456995288709439779857319205707173662845644405055427904509419863606240680925061916382420684482076378518205523197463067938227019763990108007075242817656584738069628913136354101292332085988235385095314890393764303221439993179548360648981274242121283353602916815145403803542637335824051819986555363523349256992995614272850197795324686379321786728586563648175181401083465608646485432113720677594958984638724107125334720354094296357390072599568691394140689362397548059953034709737955082932844672007207996936767062822977154868592390902978952191044067944696085651546627109166427150923047360912876244376114967514367037960727491317506149228522989115013325839758536585180101058382614514947428328314724097308211883678572797106209083583109261376984483242047015474025283180602280795727273381785266819469972756514932048700356409177010293248246465560904863373454995512681663614120751469186425087937476277098506766986185341057569253541467185884718825148546913924405454412786581778526929471207590180161807679236125962298541766845327682689402342086818440002212258092785616843818868009803516765308135874826622684994974230341120600336001281979511703254112012642242186568042544945546342209510451281619322586082384591244651070733725666379203036
# x = 632789818728437249014397968661921775581544184224274756276433610798113468993672164321438530616013253289782663689077268876186151437864544302469108580709641566485290311420121506047579208345815027532791974738974313200169956832221919603190470863795222438259219096469376978228578380264663345353405438455186474301297012193183679157205629903265170130103917934683090733281473604073360246791105302237248347327779245961650717330972723138979527847182834557342036244971153338500301679961477335495638826895006083228659413981010440339548216034046748372206443701123739501069837327986187240490120446390477989503341189926203433991663521331801532805472205226609164816353391564959573141240378777470418994251339128482692796773797189201818245228107080728132313948392278762055786817726909473749863670490856099352687396397382321897116397931192027599070027627694680087783451302597521080702011592065963594511723809150300184064231573197933953378151145481864603829132945843828406023019349658403181028564910247213010151333549565330384930314823393041100958566895783471423052411323469971356896800670127810656782436426988914502569025478559937511734711601790440407326688723474002610311556839284338719325762246957198057778260962250609427063416142879689421634421458709
# y = 643036772350048228226994649092616650645954632907587039823201793924675328231324332666556623349121829177212510871016658056913708287862858528109879661403451187304726709132260743678530717837451671681355571221280002404299107695652155670051078882192093123123561845252965958271768933274773257692931042446530995042732001095255062905223134293710172411977911384445547906762517497734345024155549903618728650384451421173225517825102299209880684634460331223065873651202939210708252359077003909032324005805452514172406303829425073706650894226101275953935372059009590759610077924785340813184927561117202564837188711962251575479458375013998344858887909613413912370566496257586437903234141740497499987400831528329286044181171784190933054960738806780037696966451373943646987424395266465375230570034361116196796918297724925148528750740437152338021273617526482564999975699692816362539898387887578959664017588135024295202965648259490954273611159737721618049049630608155576688331546213838011267525827596272825121479187503405108808503874817959024671313813455057255041638822640703012661546718752651979237589873357378433672292216062102553378571263015343101391160579720162709138758489316499316122410388218239186892007182433862338617140046642758913862484601497

c= 551564125794527360292754537135683993412073939931842743252825546160841743341364252094742222814487857418305824437323878030495005807897236944650041419697803230240542069789239142234335059646047531620567332859284127151534412455911539133365768350696428945111875792760777095508652587766083396019852298185115051969441074068938824047201192080418628602596174474774855697186208035938593534975409169684395515882685578329880719955607549130328622864194613235437820462747929915267018301395643953492066705285425220173592312775458072380593362944099308614354606781832206279986843372454066078671851476691251733787462566344010699659948657470584132290099499667486463668654484126327809783796272798211413970548059315276716638396549002556403458342714471679783144761718633856405196153659252506389046652272680738572647805669805470798408389216761414662117425919867711976198236441013393105065105046883566185424874718959523366577696635290319923431499347239353902164293776533287417684647248865650788292642479872919920916018023539192669345883686464939028997808635504006023546082570114536162143744176286568521085625879207069673824739439940521280693601490469000165917705323629474544240448431724304411942107541454761715945905363697306927908085601405210241096339584435
9807247039404448954963352619290053817774585395754134969607607599489866960848309338371304092383520214119010296945832400748842280505823284896280184299770990015886636938446487837332440068722091896966239918948214059450308700209692613410087136181964716110011463549065689048118552503766016241531190839200167363455629670791469885706416440616071640179085687913596345544108252103131919792883533411887978117653867323154920231930620326681363898701253948804480033036777093360070953699868327047011771120488667996565158186954201851822351683707657471538724903612258514020019727712824824241910918929957458940880178133174690012227759505284662307196431616765696651284974931270115488164260004910079804256291599078772772770836293727960977143265973100021783203907087152455172643977103015137001774692203233746897544395956607148133741365140228565716165658798019402843038982118780707115723944675643846394309458734679834752249775921745913068541271502428332164533006063740591533466442198890901958800288343896896668413154996367057650929341170587852199888183791329822172413029715873827297001879629329544723986233712011579073145229266046089906763459365900298477078756212360181434104549403686653544363024494939688920187459355866490217406041194403168027472123533980410329210239908133348640729157106167761443782828842618897594824967120135955777656028114777764920029324779729192415200772374102760992431741712589573133323045602438892906690305243018511541736767328696353302613299762397605534742662461786969916519170051427740074575486151910853817417567199061572789566762136165811915103629647922491886473725437501168203938440554243417554561375505734295259545701026202458918239525388818404035640721021207776737642364765546686852965441573000676704935298582807340303603459899210469112284435310867257476399003904956015407470918417408670790553010935760106771164898875022712603408867736101562
x= 1039921692531141453171855686573982160456036531996302869318512030808823452344564509029392768187937381358132835421353947391146152688775743299708763697482129863204164544696991625661601981428710402320295175770372423624167211973430139460361562768548290676701957053891210369700921221423149214485954906023526821279926557801581767708726392811383905896345230572315244721504057592760336332644624486050382007494446830316569572753507641996242913084915745145936195274474180406298475140237243181920308808061641459145199545975335386794052129180701729606572759157857974396497582462091051829175373289263597496839879241578243224907672832014803113635737984868263391212145914279985388384337152091881584412700291574912680627163539990219142463561790982466626815425779747862078596997632279168340914860868052097864543118762539022747121013597275757154401931133822198696036282672601198523849805269896168866902811154489835853026712709866710314531080297228565754738514945802684651397895233790841923066629484585104088163724416585649040197355115406759433403488645168693798651073547129833154915060629892670375098565171693004803737662953673589099229638713143579081504330789724161639576214795886269552237155791077509102229464684521355609590852748304069726247236704799
y= 736014288116387998482981292225897575913033744746622859814245522394148828934504502068128536122008262895931175914404165778736109397740668050279940330934493758991133283289795093940740201033496246207192437425621387835239430286481129433660072250177825347297475025162943732731630653122272527575067247416479924583882613330362098881474738197380789249965288557232114834891782358102994942270211315653831351383961417227758531583740666226727725750344616718977607143032420115705902434150306308160817617737050537061661099447512128104666493631155591951137144970943417226364185059458456339980873416546822860516520652871647188557889586426143677544650638309834553711532895702474423578962267524516754014832022202939700966864046238418056495746842655952853211515370515521909876239291145362684660555361066717458585544421496216796451185392132170217148402925014208212261927403253177814728752653680327831399487079417648836955867684206159459353721174409472322370933025321740556907124801250532865024242284602753929833669163493860061693895261466397155211732075466641386919838121634892150813507406963394856780887481463616941192441478968072733703153183623234052142371034221826202653301438259138303438892825467473471320095956240609806088237187069554283831919431149
